home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / appletalk / uab.shar / desc.ms < prev    next >
Encoding:
Text File  |  1990-07-12  |  7.5 KB  |  169 lines

  1. .\" nroff -ms
  2. .TL
  3. Unix AppleTalk Bridge
  4. .AB
  5. This document describes a
  6. Unix based AppleTalk Bridge 
  7. .I (UAB)
  8. designed to work on a variety of
  9. host unix systems.  UAB also provides for mechanisms to deliver
  10. packets internally.
  11. .AE
  12. .SH
  13. INTRODUCTION
  14. .LP
  15. The Unix AppleTalk
  16. Bridge (UAB) program allows certain unix systems to act as AppleTalk
  17. Bridges.  UAB consists of a number of layers that can have multiple
  18. implementations.  UAB can be functionally divided into two parts.  The
  19. first is the actual AppleTalk Bridge implementation and the second are
  20. the routines that define particular "Link Access Protocols" (aka
  21. "hardware" delivery methods e.g. EtherTalk).  UAB also supports an
  22. internal demultiplexing that allows
  23. packets delivered to the UAB node to be delivered to other processes
  24. within that system.  
  25. .PP
  26. Currently, UAB runs on Ultrix 1.2 (and beyond) and SunOS 4.0 and
  27. supports EtherTalk.  Unfortunately, with the current definition of
  28. KIP's UDP encapsulation and delivery rules, it is not feasible to
  29. implement KIP.
  30. The only internal packet
  31. delivery mechanism defined is a modified version of KIP's UDP
  32. encapsulation (modified-KIP) that uses a different UDP port range over
  33. the internal
  34. loopback; thus CAP programs must be relinked with a different low
  35. level delivery mechanism to work with UAB.  Note that all packets for
  36. these programs are sent and received through the UAB process.
  37. Since UAB does not understand KIP, 
  38. it is necessary to have an AppleTalk Bridge that
  39. understands both KIP encapsulation and EtherTalk before KIP based
  40. "systems" (e.g. programs compiled with CAP, bridges that only speak
  41. KIP on the ethernet interface--revisions of KIP before 2/88, etc) can
  42. work with UAB modified-KIP based programs.
  43. .SH
  44. Definitions
  45. .LP
  46. .IP
  47. An 
  48. .I interface
  49. defines the
  50. underlying delivery protocol.  The only delivery protocol supported at
  51. the present time is EtherTalk.
  52. .IP
  53. A
  54. .I port
  55. abstracts an interface into a workable DDP entity.  DDP level
  56. functions deal with ports rather than interfaces.  A port carries
  57. information such as interface input/output mechanisms, ddp network
  58. numbers, etc.
  59. .IP
  60. The
  61. .I port manager
  62. is a set of routines that handle ports.  Only the port manager
  63. directly manipulates a port.  Both the lap layer and the ddp layer
  64. call the port manager.
  65. .IP
  66. A
  67. .I node
  68. is a DDP/RTMP concept that defines nodes in a way that should contain
  69. all the various LAP definitions.  In particular, a node is defined as the
  70. tuple <# of bits, bits> where the number of bits can be between 1 and
  71. 255.  This is more general than the original LocalTalk LAP definition
  72. which defines a node as 8 bits.
  73. .SH
  74. AppleTalk Bridge
  75. .LP
  76. UAB builds upon the concepts of 
  77. .I interface,
  78. .I port,
  79. and
  80. .I node
  81. to separate itself from the underlying delivery mechanism.
  82. As an AppleTalk bridge, it provides full RTMP and ZIP services as
  83. defined in Inside AppleTalk.  In addition, it provides the NBP Bridge
  84. Lookup services.
  85. .PP
  86. As all AppleTalk bridges, it is also a node on the various AppleTalk
  87. networks to which it is directly connected.  Packets directed to its node
  88. number (e.g. that aren't supposed to be forwarded) and which are not
  89. directly related to bridge management (RTMP, ZIP, and NBP BrLk) are
  90. handled in two ways.  The first provides a simple "port" wide
  91. services: when the socket is "opened" it is opened for all known and
  92. future ports.  The only one currently defined is DDP ECHO.  In the
  93. future, it may be necessary or advisable to add other NBP services
  94. such as outgoing lookup, internal name management, etc; however, that
  95. has not yet been done.  For "unopened" sockets the packets are
  96. sent to a "demultiplexer".  (NBP is considered "partially" opened for
  97. our purposes-the handler only picks out the bridge lookup packets).
  98. .PP
  99. The demultiplexor/multiplexor is supposed to solve the problems of
  100. sending to other
  101. processes on the system (if the system is processes based like unix).
  102. There are a number of requirements associated with the demultiplexor under
  103. Unix.  First, the demultiplexor delivery mechanism does not have to be 
  104. reliable since it is delivering ddp packets: since DDP is considered
  105. unreliable, there must be higher level policies that ensure delivery.
  106. Second, the demultiplexing end must be able to send DDP packets to the
  107. correct processes
  108. in a way that the processes can decode what the DDP socket number was.
  109. For example, with UDP, it is simple enough to define a port range and
  110. send the packet to a particular port: if a program is listening on it,
  111. it will receive it and know exactly which socket (based upon a
  112. mapping) it was meant for.  With UDP, the process knows that
  113. a stronger condition holds
  114. because the processes knows apriori what the DDP socket number is and
  115. can do different reads based upon this (e.g. customized io vectors).
  116. Third, the multiplexing end must be able to know the DDP socket that the
  117. process is sending to.  With UDP, the best way is to have the
  118. multiplexing end listen to a single socket: the recv call can return
  119. the source port number (which then can be translated in to the DDP
  120. socket).  Fourth, both sides must be relatively sure of the
  121. "trustworthiness" of the packets: e.g. one must not be able to have
  122. "untrustworthy" agents intercept or inject packets undetectably.
  123. Fifth, it is necessary that the mechanism work within reasonable
  124. implementation boundaries.  For instances, a mechanism that required
  125. the full DDP range of 254 sockets to be opened (e.g have that many
  126. file descriptors/open files) would not fit within
  127. those requirements upon most if not all of today's unix systems.
  128. .PP
  129. The only mechanism defined so far that allows these requirements to be
  130. fulfilled in a reasonable fashion is the modified KIP scheme, but even
  131. there, the security requirement has been loosened.  The primary reason
  132. that it works well is that one can define a single point of contact on
  133. the demux/mux process that goes to many points (on many processes)
  134. within the constraints mentioned above.  Basically,
  135. it's real easy to use UDP because it allows one to use the
  136. kernel to do the fan-in and fan-out
  137. functionality.
  138. .SH
  139. Link Access Protocols/Interfaces
  140. .LP
  141. .I UAB
  142. uses DDP ports and interfaces to abstract the bridge functionality
  143. from the delivery mechanisms.  The level of separation is at the ddp
  144. layer.  As defined before, an interface is a basic description of a
  145. particular delivery protocol such as EtherTalk (ELAP, implemented) or
  146. LocalTalk (ALAP, not implemented at present).
  147. When initialized, an interface sends information to the ddp port
  148. manager that defines its basic operating characteristics.
  149. .PP
  150. The only delivery protocol defined at present is the EtherTalk Link
  151. Access Protocol (aka EtherTalk).  Other delivery protocols may be
  152. defined for other systems with particular hardware (e.g. Mac II
  153. running A/UX with a localtalk card) in the future or by other parties.
  154. The SunOS and Ultrix ELAPs are implemented on top of a specialized
  155. facility available on both (in different forms) that allow "opening"
  156. an Ethernet protocol: all packets addressed to that host with a
  157. particular protocol type are delivered to the UAB process.  No or very
  158. little processing is done by the kernel.  To complete these ELAP, AARP
  159. is also implemented.  The only protocol interface library
  160. implemented under SunOS is based upon the streams version of the
  161. Network Interface Tap first made available in SunOS 4.0.  The protocol
  162. interface library for Ultrix is based on the Data Link Inteface
  163. facility (c.f. DECNET documentation).
  164. .PP
  165. The ELAP implementation is abstracted from the actual "ethernet
  166. protocol" facilities by the use of a set of "protocol interface
  167. routines" (poor choice of names, but was made a long time ago when the
  168. routines were meant for a far different purpose).
  169.